package com.numberone.iotplatform.dto.a_i_box;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * 数据传输对象 (DTO)，用于映射 AI BOX API - "2.3.6 通道获取" 接口的响应数据。
 * 这个类对应响应体中 data.channels 数组里的单个通道对象。
 */
@Data
public class ChannelInfoDTO {

    /**
     * 通道ID
     */
    private Integer id;

    /**
     * IPC 的 IPv4 地址
     */
    private String ip;

    /**
     * Onvif 管理端口
     */
    private Integer port;

    /**
     * IPC 接入的用户名
     */
    private String username;

    /**
     * IPC 接入的密码
     */
    private String password;

    /**
     * 视频主码流地址 (RTSP)
     */
    @JsonProperty("main_stream")
    private String mainStream;

    /**
     * 视频子码流地址 (RTSP)
     */
    @JsonProperty("sub_stream")
    private String subStream;

    /**
     * 视频第三流地址 (RTSP)
     */
    @JsonProperty("third_stream")
    private String thirdStream;

    /**
     * 视频检测流地址 (RTSP)
     */
    @JsonProperty("detect_stream")
    private String detectStream;

    /**
     * 视频预览流地址 (RTSP)
     */
    @JsonProperty("preview_stream")
    private String previewStream;

    /**
     * IPC 设备序列号
     */
    @JsonProperty("serial_num")
    private String serialNum;

    /**
     * IPC 在线状态
     * 文档中未明确说明值的含义，推测为 1:在线, 0:离线
     */
    private Integer status;

    /**
     * 推图策略
     * 文档中未明确说明值的含义，推测为 0:时间优先, 1:效果优先
     */
    private Integer strategy;

    /**
     * 模式
     * 文档中未明确说明值的含义，推测为 0:结构化, 1:人脸, 2:警戒
     */
    private Integer mode;

    /**
     * 时间间隔
     */
    @JsonProperty("time_interval")
    private Integer timeInterval;

    /**
     * 设备编号
     */
    @JsonProperty("dev_num")
    private String devNum;

    /**
     * 通道名称
     */
    private String name;

    /**
     * 识别区域号1
     */
    @JsonProperty("lane_num1")
    private String laneNum1;

    /**
     * 识别区域号2
     */
    @JsonProperty("lane_num2")
    private String laneNum2;

    /**
     * 识别区域号3
     */
    @JsonProperty("lane_num3")
    private String laneNum3;
}